<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>3.深度监视</title>
    <!-- 引入Vue -->
    <script type="text/javascript" src="../../js/vue.js"></script>
  </head>
  <body>
    <!-- 准备好一个容器-->
    <div id="demo">
      <h2>姓名：{{person.name}}</h2>
      <h2>汽车价格：{{person.car.price}}</h2>
      <h2>汽车颜色：{{person.car.color}}</h2>
      <h2>看看f：{{a.b.c.d.e.f}}</h2>
      
      <button @click="person.name = 'tony'">改名（改的是person的属性）</button>
      <button @click="person.car.price = '2000'">改汽车价格（改的是person的属性）</button>
      <button @click="person.car.color = '红色'">改汽车颜色（改的是person的属性）</button>
      <button @click="changeAllPerson">改整个person</button>
      <button @click="a.b.c.d.e.f = 666 ">改f</button>
    </div>

    <script type="text/javascript">
      new Vue({
        el:'#demo',
        data:{
          person:{
            name:'晶晶',
            car:{price:'1000W',color:'黑色'}
          },
          a:{
            b:{
              c:{
                d:{
                  e:{
                    f:1
                  }
                }
              }
            }
          },
        },
        methods:{
          // 用于修改整个person对象（所谓的整个，就是让其地址值发生变化）
          changeAllPerson(){
            this.person = {name:'马保国',car:{price:'8000W',color:'白色'}}
          }
        },
        // 要监视了
        watch:{
          person:{
            deep:true,
            handler(value){
              console.log('person变化了',value)
            }
          },
          a:{
            deep:true,
            handler(value){
              console.log('f变化了',value)
            }
          },
        }
      })
    </script>
  </body>
</html>